# Avoid multiple calls to find_package to append duplicated properties to the targets
include_guard()########### VARIABLES #######################################################################
#############################################################################################
set(folly_FRAMEWORKS_FOUND_RELEASE "") # Will be filled later
conan_find_apple_frameworks(folly_FRAMEWORKS_FOUND_RELEASE "${folly_FRAMEWORKS_RELEASE}" "${folly_FRAMEWORK_DIRS_RELEASE}")

set(folly_LIBRARIES_TARGETS "") # Will be filled later


######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
if(NOT TARGET folly_DEPS_TARGET)
    add_library(folly_DEPS_TARGET INTERFACE IMPORTED)
endif()

set_property(TARGET folly_DEPS_TARGET
             PROPERTY INTERFACE_LINK_LIBRARIES
             $<$<CONFIG:Release>:${folly_FRAMEWORKS_FOUND_RELEASE}>
             $<$<CONFIG:Release>:${folly_SYSTEM_LIBS_RELEASE}>
             $<$<CONFIG:Release>:Boost::context;Boost::filesystem;Boost::program_options;Boost::regex;Boost::system;Boost::thread;BZip2::BZip2;double-conversion::double-conversion;gflags::gflags;glog::glog;libevent::libevent;LZ4::lz4_static;openssl::openssl;Snappy::snappy;ZLIB::ZLIB;zstd::libzstd_static;libsodium::libsodium;LibLZMA::LibLZMA;libdwarf::libdwarf;libiberty::libiberty;libunwind::libunwind;Folly::folly;Folly::folly;Folly::folly;Folly::folly_exception_tracer_base;Folly::folly_exception_tracer>
             APPEND)

####### Find the libraries declared in cpp_info.libs, create an IMPORTED target for each one and link the
####### folly_DEPS_TARGET to all of them
conan_package_library_targets("${folly_LIBS_RELEASE}"    # libraries
                              "${folly_LIB_DIRS_RELEASE}" # package_libdir
                              folly_DEPS_TARGET
                              folly_LIBRARIES_TARGETS  # out_libraries_targets
                              "_RELEASE"
                              "folly")    # package_name

# FIXME: What is the result of this for multi-config? All configs adding themselves to path?
set(CMAKE_MODULE_PATH ${folly_BUILD_DIRS_RELEASE} ${CMAKE_MODULE_PATH})

########## COMPONENTS TARGET PROPERTIES Release ########################################

    ########## COMPONENT Folly::folly_exception_counter #############

        set(folly_Folly_folly_exception_counter_FRAMEWORKS_FOUND_RELEASE "")
        conan_find_apple_frameworks(folly_Folly_folly_exception_counter_FRAMEWORKS_FOUND_RELEASE "${folly_Folly_folly_exception_counter_FRAMEWORKS_RELEASE}" "${folly_Folly_folly_exception_counter_FRAMEWORK_DIRS_RELEASE}")

        set(folly_Folly_folly_exception_counter_LIBRARIES_TARGETS "")

        ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
        if(NOT TARGET folly_Folly_folly_exception_counter_DEPS_TARGET)
            add_library(folly_Folly_folly_exception_counter_DEPS_TARGET INTERFACE IMPORTED)
        endif()

        set_property(TARGET folly_Folly_folly_exception_counter_DEPS_TARGET
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_counter_FRAMEWORKS_FOUND_RELEASE}>
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_counter_SYSTEM_LIBS_RELEASE}>
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_counter_DEPENDENCIES_RELEASE}>
                     APPEND)

        ####### Find the libraries declared in cpp_info.component["xxx"].libs,
        ####### create an IMPORTED target for each one and link the 'folly_Folly_folly_exception_counter_DEPS_TARGET' to all of them
        conan_package_library_targets("${folly_Folly_folly_exception_counter_LIBS_RELEASE}"
                                      "${folly_Folly_folly_exception_counter_LIB_DIRS_RELEASE}"
                                      folly_Folly_folly_exception_counter_DEPS_TARGET
                                      folly_Folly_folly_exception_counter_LIBRARIES_TARGETS
                                      "_RELEASE"
                                      "folly_Folly_folly_exception_counter")

        ########## TARGET PROPERTIES #####################################
        set_property(TARGET Folly::folly_exception_counter
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_counter_OBJECTS_RELEASE}>
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_counter_LIBRARIES_TARGETS}>
                     APPEND)

        if("${folly_Folly_folly_exception_counter_LIBS_RELEASE}" STREQUAL "")
            # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not
            # linked to the imported targets and we need to do it to the global target
            set_property(TARGET Folly::folly_exception_counter
                         PROPERTY INTERFACE_LINK_LIBRARIES
                         folly_Folly_folly_exception_counter_DEPS_TARGET
                         APPEND)
        endif()

        set_property(TARGET Folly::folly_exception_counter PROPERTY INTERFACE_LINK_OPTIONS
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_counter_LINKER_FLAGS_RELEASE}> APPEND)
        set_property(TARGET Folly::folly_exception_counter PROPERTY INTERFACE_INCLUDE_DIRECTORIES
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_counter_INCLUDE_DIRS_RELEASE}> APPEND)
        set_property(TARGET Folly::folly_exception_counter PROPERTY INTERFACE_COMPILE_DEFINITIONS
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_counter_COMPILE_DEFINITIONS_RELEASE}> APPEND)
        set_property(TARGET Folly::folly_exception_counter PROPERTY INTERFACE_COMPILE_OPTIONS
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_counter_COMPILE_OPTIONS_RELEASE}> APPEND)

    ########## COMPONENT Folly::folly_exception_tracer #############

        set(folly_Folly_folly_exception_tracer_FRAMEWORKS_FOUND_RELEASE "")
        conan_find_apple_frameworks(folly_Folly_folly_exception_tracer_FRAMEWORKS_FOUND_RELEASE "${folly_Folly_folly_exception_tracer_FRAMEWORKS_RELEASE}" "${folly_Folly_folly_exception_tracer_FRAMEWORK_DIRS_RELEASE}")

        set(folly_Folly_folly_exception_tracer_LIBRARIES_TARGETS "")

        ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
        if(NOT TARGET folly_Folly_folly_exception_tracer_DEPS_TARGET)
            add_library(folly_Folly_folly_exception_tracer_DEPS_TARGET INTERFACE IMPORTED)
        endif()

        set_property(TARGET folly_Folly_folly_exception_tracer_DEPS_TARGET
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_tracer_FRAMEWORKS_FOUND_RELEASE}>
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_tracer_SYSTEM_LIBS_RELEASE}>
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_tracer_DEPENDENCIES_RELEASE}>
                     APPEND)

        ####### Find the libraries declared in cpp_info.component["xxx"].libs,
        ####### create an IMPORTED target for each one and link the 'folly_Folly_folly_exception_tracer_DEPS_TARGET' to all of them
        conan_package_library_targets("${folly_Folly_folly_exception_tracer_LIBS_RELEASE}"
                                      "${folly_Folly_folly_exception_tracer_LIB_DIRS_RELEASE}"
                                      folly_Folly_folly_exception_tracer_DEPS_TARGET
                                      folly_Folly_folly_exception_tracer_LIBRARIES_TARGETS
                                      "_RELEASE"
                                      "folly_Folly_folly_exception_tracer")

        ########## TARGET PROPERTIES #####################################
        set_property(TARGET Folly::folly_exception_tracer
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_tracer_OBJECTS_RELEASE}>
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_tracer_LIBRARIES_TARGETS}>
                     APPEND)

        if("${folly_Folly_folly_exception_tracer_LIBS_RELEASE}" STREQUAL "")
            # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not
            # linked to the imported targets and we need to do it to the global target
            set_property(TARGET Folly::folly_exception_tracer
                         PROPERTY INTERFACE_LINK_LIBRARIES
                         folly_Folly_folly_exception_tracer_DEPS_TARGET
                         APPEND)
        endif()

        set_property(TARGET Folly::folly_exception_tracer PROPERTY INTERFACE_LINK_OPTIONS
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_tracer_LINKER_FLAGS_RELEASE}> APPEND)
        set_property(TARGET Folly::folly_exception_tracer PROPERTY INTERFACE_INCLUDE_DIRECTORIES
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_tracer_INCLUDE_DIRS_RELEASE}> APPEND)
        set_property(TARGET Folly::folly_exception_tracer PROPERTY INTERFACE_COMPILE_DEFINITIONS
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_tracer_COMPILE_DEFINITIONS_RELEASE}> APPEND)
        set_property(TARGET Folly::folly_exception_tracer PROPERTY INTERFACE_COMPILE_OPTIONS
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_tracer_COMPILE_OPTIONS_RELEASE}> APPEND)

    ########## COMPONENT Folly::folly_exception_tracer_base #############

        set(folly_Folly_folly_exception_tracer_base_FRAMEWORKS_FOUND_RELEASE "")
        conan_find_apple_frameworks(folly_Folly_folly_exception_tracer_base_FRAMEWORKS_FOUND_RELEASE "${folly_Folly_folly_exception_tracer_base_FRAMEWORKS_RELEASE}" "${folly_Folly_folly_exception_tracer_base_FRAMEWORK_DIRS_RELEASE}")

        set(folly_Folly_folly_exception_tracer_base_LIBRARIES_TARGETS "")

        ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
        if(NOT TARGET folly_Folly_folly_exception_tracer_base_DEPS_TARGET)
            add_library(folly_Folly_folly_exception_tracer_base_DEPS_TARGET INTERFACE IMPORTED)
        endif()

        set_property(TARGET folly_Folly_folly_exception_tracer_base_DEPS_TARGET
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_tracer_base_FRAMEWORKS_FOUND_RELEASE}>
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_tracer_base_SYSTEM_LIBS_RELEASE}>
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_tracer_base_DEPENDENCIES_RELEASE}>
                     APPEND)

        ####### Find the libraries declared in cpp_info.component["xxx"].libs,
        ####### create an IMPORTED target for each one and link the 'folly_Folly_folly_exception_tracer_base_DEPS_TARGET' to all of them
        conan_package_library_targets("${folly_Folly_folly_exception_tracer_base_LIBS_RELEASE}"
                                      "${folly_Folly_folly_exception_tracer_base_LIB_DIRS_RELEASE}"
                                      folly_Folly_folly_exception_tracer_base_DEPS_TARGET
                                      folly_Folly_folly_exception_tracer_base_LIBRARIES_TARGETS
                                      "_RELEASE"
                                      "folly_Folly_folly_exception_tracer_base")

        ########## TARGET PROPERTIES #####################################
        set_property(TARGET Folly::folly_exception_tracer_base
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_tracer_base_OBJECTS_RELEASE}>
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_tracer_base_LIBRARIES_TARGETS}>
                     APPEND)

        if("${folly_Folly_folly_exception_tracer_base_LIBS_RELEASE}" STREQUAL "")
            # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not
            # linked to the imported targets and we need to do it to the global target
            set_property(TARGET Folly::folly_exception_tracer_base
                         PROPERTY INTERFACE_LINK_LIBRARIES
                         folly_Folly_folly_exception_tracer_base_DEPS_TARGET
                         APPEND)
        endif()

        set_property(TARGET Folly::folly_exception_tracer_base PROPERTY INTERFACE_LINK_OPTIONS
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_tracer_base_LINKER_FLAGS_RELEASE}> APPEND)
        set_property(TARGET Folly::folly_exception_tracer_base PROPERTY INTERFACE_INCLUDE_DIRECTORIES
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_tracer_base_INCLUDE_DIRS_RELEASE}> APPEND)
        set_property(TARGET Folly::folly_exception_tracer_base PROPERTY INTERFACE_COMPILE_DEFINITIONS
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_tracer_base_COMPILE_DEFINITIONS_RELEASE}> APPEND)
        set_property(TARGET Folly::folly_exception_tracer_base PROPERTY INTERFACE_COMPILE_OPTIONS
                     $<$<CONFIG:Release>:${folly_Folly_folly_exception_tracer_base_COMPILE_OPTIONS_RELEASE}> APPEND)

    ########## COMPONENT Folly::folly_test_util #############

        set(folly_Folly_folly_test_util_FRAMEWORKS_FOUND_RELEASE "")
        conan_find_apple_frameworks(folly_Folly_folly_test_util_FRAMEWORKS_FOUND_RELEASE "${folly_Folly_folly_test_util_FRAMEWORKS_RELEASE}" "${folly_Folly_folly_test_util_FRAMEWORK_DIRS_RELEASE}")

        set(folly_Folly_folly_test_util_LIBRARIES_TARGETS "")

        ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
        if(NOT TARGET folly_Folly_folly_test_util_DEPS_TARGET)
            add_library(folly_Folly_folly_test_util_DEPS_TARGET INTERFACE IMPORTED)
        endif()

        set_property(TARGET folly_Folly_folly_test_util_DEPS_TARGET
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${folly_Folly_folly_test_util_FRAMEWORKS_FOUND_RELEASE}>
                     $<$<CONFIG:Release>:${folly_Folly_folly_test_util_SYSTEM_LIBS_RELEASE}>
                     $<$<CONFIG:Release>:${folly_Folly_folly_test_util_DEPENDENCIES_RELEASE}>
                     APPEND)

        ####### Find the libraries declared in cpp_info.component["xxx"].libs,
        ####### create an IMPORTED target for each one and link the 'folly_Folly_folly_test_util_DEPS_TARGET' to all of them
        conan_package_library_targets("${folly_Folly_folly_test_util_LIBS_RELEASE}"
                                      "${folly_Folly_folly_test_util_LIB_DIRS_RELEASE}"
                                      folly_Folly_folly_test_util_DEPS_TARGET
                                      folly_Folly_folly_test_util_LIBRARIES_TARGETS
                                      "_RELEASE"
                                      "folly_Folly_folly_test_util")

        ########## TARGET PROPERTIES #####################################
        set_property(TARGET Folly::folly_test_util
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${folly_Folly_folly_test_util_OBJECTS_RELEASE}>
                     $<$<CONFIG:Release>:${folly_Folly_folly_test_util_LIBRARIES_TARGETS}>
                     APPEND)

        if("${folly_Folly_folly_test_util_LIBS_RELEASE}" STREQUAL "")
            # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not
            # linked to the imported targets and we need to do it to the global target
            set_property(TARGET Folly::folly_test_util
                         PROPERTY INTERFACE_LINK_LIBRARIES
                         folly_Folly_folly_test_util_DEPS_TARGET
                         APPEND)
        endif()

        set_property(TARGET Folly::folly_test_util PROPERTY INTERFACE_LINK_OPTIONS
                     $<$<CONFIG:Release>:${folly_Folly_folly_test_util_LINKER_FLAGS_RELEASE}> APPEND)
        set_property(TARGET Folly::folly_test_util PROPERTY INTERFACE_INCLUDE_DIRECTORIES
                     $<$<CONFIG:Release>:${folly_Folly_folly_test_util_INCLUDE_DIRS_RELEASE}> APPEND)
        set_property(TARGET Folly::folly_test_util PROPERTY INTERFACE_COMPILE_DEFINITIONS
                     $<$<CONFIG:Release>:${folly_Folly_folly_test_util_COMPILE_DEFINITIONS_RELEASE}> APPEND)
        set_property(TARGET Folly::folly_test_util PROPERTY INTERFACE_COMPILE_OPTIONS
                     $<$<CONFIG:Release>:${folly_Folly_folly_test_util_COMPILE_OPTIONS_RELEASE}> APPEND)

    ########## COMPONENT Folly::follybenchmark #############

        set(folly_Folly_follybenchmark_FRAMEWORKS_FOUND_RELEASE "")
        conan_find_apple_frameworks(folly_Folly_follybenchmark_FRAMEWORKS_FOUND_RELEASE "${folly_Folly_follybenchmark_FRAMEWORKS_RELEASE}" "${folly_Folly_follybenchmark_FRAMEWORK_DIRS_RELEASE}")

        set(folly_Folly_follybenchmark_LIBRARIES_TARGETS "")

        ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
        if(NOT TARGET folly_Folly_follybenchmark_DEPS_TARGET)
            add_library(folly_Folly_follybenchmark_DEPS_TARGET INTERFACE IMPORTED)
        endif()

        set_property(TARGET folly_Folly_follybenchmark_DEPS_TARGET
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${folly_Folly_follybenchmark_FRAMEWORKS_FOUND_RELEASE}>
                     $<$<CONFIG:Release>:${folly_Folly_follybenchmark_SYSTEM_LIBS_RELEASE}>
                     $<$<CONFIG:Release>:${folly_Folly_follybenchmark_DEPENDENCIES_RELEASE}>
                     APPEND)

        ####### Find the libraries declared in cpp_info.component["xxx"].libs,
        ####### create an IMPORTED target for each one and link the 'folly_Folly_follybenchmark_DEPS_TARGET' to all of them
        conan_package_library_targets("${folly_Folly_follybenchmark_LIBS_RELEASE}"
                                      "${folly_Folly_follybenchmark_LIB_DIRS_RELEASE}"
                                      folly_Folly_follybenchmark_DEPS_TARGET
                                      folly_Folly_follybenchmark_LIBRARIES_TARGETS
                                      "_RELEASE"
                                      "folly_Folly_follybenchmark")

        ########## TARGET PROPERTIES #####################################
        set_property(TARGET Folly::follybenchmark
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${folly_Folly_follybenchmark_OBJECTS_RELEASE}>
                     $<$<CONFIG:Release>:${folly_Folly_follybenchmark_LIBRARIES_TARGETS}>
                     APPEND)

        if("${folly_Folly_follybenchmark_LIBS_RELEASE}" STREQUAL "")
            # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not
            # linked to the imported targets and we need to do it to the global target
            set_property(TARGET Folly::follybenchmark
                         PROPERTY INTERFACE_LINK_LIBRARIES
                         folly_Folly_follybenchmark_DEPS_TARGET
                         APPEND)
        endif()

        set_property(TARGET Folly::follybenchmark PROPERTY INTERFACE_LINK_OPTIONS
                     $<$<CONFIG:Release>:${folly_Folly_follybenchmark_LINKER_FLAGS_RELEASE}> APPEND)
        set_property(TARGET Folly::follybenchmark PROPERTY INTERFACE_INCLUDE_DIRECTORIES
                     $<$<CONFIG:Release>:${folly_Folly_follybenchmark_INCLUDE_DIRS_RELEASE}> APPEND)
        set_property(TARGET Folly::follybenchmark PROPERTY INTERFACE_COMPILE_DEFINITIONS
                     $<$<CONFIG:Release>:${folly_Folly_follybenchmark_COMPILE_DEFINITIONS_RELEASE}> APPEND)
        set_property(TARGET Folly::follybenchmark PROPERTY INTERFACE_COMPILE_OPTIONS
                     $<$<CONFIG:Release>:${folly_Folly_follybenchmark_COMPILE_OPTIONS_RELEASE}> APPEND)

    ########## COMPONENT Folly::folly #############

        set(folly_Folly_folly_FRAMEWORKS_FOUND_RELEASE "")
        conan_find_apple_frameworks(folly_Folly_folly_FRAMEWORKS_FOUND_RELEASE "${folly_Folly_folly_FRAMEWORKS_RELEASE}" "${folly_Folly_folly_FRAMEWORK_DIRS_RELEASE}")

        set(folly_Folly_folly_LIBRARIES_TARGETS "")

        ######## Create an interface target to contain all the dependencies (frameworks, system and conan deps)
        if(NOT TARGET folly_Folly_folly_DEPS_TARGET)
            add_library(folly_Folly_folly_DEPS_TARGET INTERFACE IMPORTED)
        endif()

        set_property(TARGET folly_Folly_folly_DEPS_TARGET
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${folly_Folly_folly_FRAMEWORKS_FOUND_RELEASE}>
                     $<$<CONFIG:Release>:${folly_Folly_folly_SYSTEM_LIBS_RELEASE}>
                     $<$<CONFIG:Release>:${folly_Folly_folly_DEPENDENCIES_RELEASE}>
                     APPEND)

        ####### Find the libraries declared in cpp_info.component["xxx"].libs,
        ####### create an IMPORTED target for each one and link the 'folly_Folly_folly_DEPS_TARGET' to all of them
        conan_package_library_targets("${folly_Folly_folly_LIBS_RELEASE}"
                                      "${folly_Folly_folly_LIB_DIRS_RELEASE}"
                                      folly_Folly_folly_DEPS_TARGET
                                      folly_Folly_folly_LIBRARIES_TARGETS
                                      "_RELEASE"
                                      "folly_Folly_folly")

        ########## TARGET PROPERTIES #####################################
        set_property(TARGET Folly::folly
                     PROPERTY INTERFACE_LINK_LIBRARIES
                     $<$<CONFIG:Release>:${folly_Folly_folly_OBJECTS_RELEASE}>
                     $<$<CONFIG:Release>:${folly_Folly_folly_LIBRARIES_TARGETS}>
                     APPEND)

        if("${folly_Folly_folly_LIBS_RELEASE}" STREQUAL "")
            # If the component is not declaring any "cpp_info.components['foo'].libs" the system, frameworks etc are not
            # linked to the imported targets and we need to do it to the global target
            set_property(TARGET Folly::folly
                         PROPERTY INTERFACE_LINK_LIBRARIES
                         folly_Folly_folly_DEPS_TARGET
                         APPEND)
        endif()

        set_property(TARGET Folly::folly PROPERTY INTERFACE_LINK_OPTIONS
                     $<$<CONFIG:Release>:${folly_Folly_folly_LINKER_FLAGS_RELEASE}> APPEND)
        set_property(TARGET Folly::folly PROPERTY INTERFACE_INCLUDE_DIRECTORIES
                     $<$<CONFIG:Release>:${folly_Folly_folly_INCLUDE_DIRS_RELEASE}> APPEND)
        set_property(TARGET Folly::folly PROPERTY INTERFACE_COMPILE_DEFINITIONS
                     $<$<CONFIG:Release>:${folly_Folly_folly_COMPILE_DEFINITIONS_RELEASE}> APPEND)
        set_property(TARGET Folly::folly PROPERTY INTERFACE_COMPILE_OPTIONS
                     $<$<CONFIG:Release>:${folly_Folly_folly_COMPILE_OPTIONS_RELEASE}> APPEND)

    ########## AGGREGATED GLOBAL TARGET WITH THE COMPONENTS #####################
    set_property(TARGET Folly::folly PROPERTY INTERFACE_LINK_LIBRARIES Folly::folly_exception_counter APPEND)
    set_property(TARGET Folly::folly PROPERTY INTERFACE_LINK_LIBRARIES Folly::folly_exception_tracer APPEND)
    set_property(TARGET Folly::folly PROPERTY INTERFACE_LINK_LIBRARIES Folly::folly_exception_tracer_base APPEND)
    set_property(TARGET Folly::folly PROPERTY INTERFACE_LINK_LIBRARIES Folly::folly_test_util APPEND)
    set_property(TARGET Folly::folly PROPERTY INTERFACE_LINK_LIBRARIES Folly::follybenchmark APPEND)
    set_property(TARGET Folly::folly PROPERTY INTERFACE_LINK_LIBRARIES Folly::folly APPEND)

########## For the modules (FindXXX)
set(folly_LIBRARIES_RELEASE Folly::folly)
